home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_11_07 / stdfile.c < prev    next >
Text File  |  1993-01-06  |  1KB  |  40 lines

  1. /*** StdFile Class Implementation: stdfile.c ***/
  2.  
  3. #include "file.h"
  4. #include "stdfile.h"
  5.  
  6. CONSTRUCTOR(StdFile,(const char *name,const char *access))
  7.     CONSTRUCT(File,());
  8.     this->handle = fopen(name,access);
  9.     assert(this->handle);
  10. END_CONSTRUCTOR
  11.  
  12. DESTRUCTOR(StdFile)
  13.     fclose(this->handle);
  14. END_DESTRUCTOR
  15.  
  16. METHOD(StdFile, Seek, (long offset, int whence), long)
  17.     if (fseek(this->handle,offset,whence))
  18.         return -1;
  19.     return ftell(this->handle);
  20. END_METHOD
  21.  
  22. METHOD(StdFile, Read, (void *buffer, int nbytes), int)
  23.     if (fread(buffer,nbytes,1,this->handle) < 1)
  24.         return -1;
  25.     return nbytes;
  26. END_METHOD
  27.  
  28. METHOD(StdFile, Write, (void *buffer, int nbytes), int)
  29.     if (fwrite(buffer,nbytes,1,this->handle) < 1)
  30.         return -1;
  31.     return nbytes;
  32. END_METHOD
  33.  
  34. DEF_CLASS(StdFile,File)
  35.     REDEF_METHOD(StdFile,File,Seek);
  36.     REDEF_METHOD(StdFile,File,Read);
  37.     REDEF_METHOD(StdFile,File,Write);
  38.     REDEF_METHOD(StdFile,Object,destroy);
  39. END_CLASS
  40.